package operations;

import java.io.Serializable;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import db.Databasehelper;
import domain.Makaledomain;

public class AramaOperation implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -7445317667815789527L;
	private final String aranacakKelime;
	private final Object propertyId;
	
	public static String aramaKriterleri[]={"yazar","dergi","konu","anahtar kelime"};
	
	public AramaOperation(Object propertyId, String aranacakKelime) {
		this.propertyId	    = propertyId;
		this.aranacakKelime = aranacakKelime;
	}
	
	public String getAranacakMakale() {
		return aranacakKelime;
	}
	public Object getPropertyId() {
		return propertyId;
	}
	
	public ArrayList<Makaledomain> aramaSonuclari(){
		ArrayList<Makaledomain> arama = new ArrayList<Makaledomain>();
		ArrayList<String> bulunanMakaleler = null;
		Databasehelper db = new Databasehelper();
		
		if(propertyId.toString().equals(aramaKriterleri[0]))
			bulunanMakaleler = (ArrayList<String>) db.yazarmakalelistesi(aranacakKelime);
		else if(propertyId.toString().equals(aramaKriterleri[1]))
			bulunanMakaleler = db.dergisiAyniOlanMakaleleriGetir(aranacakKelime);
		else if(propertyId.toString().equals(aramaKriterleri[2]))
			bulunanMakaleler = db.konusuAyniOlanMakaleleriGetir(aranacakKelime);
		else
			bulunanMakaleler = db.anahtarKelimeyeGoreMakaleleriGetir(aranacakKelime);
		
		for (String bulunanMakale : bulunanMakaleler) {
			Makaledomain makale = db.makalegetir(bulunanMakale);
			arama.add(makale);
		}
		return arama;
	}
}
